在Linux 中设置开机启动的优先级顺序

您所在的位置:网站首页 linux bios 启动项 在Linux 中设置开机启动的优先级顺序

在Linux 中设置开机启动的优先级顺序

2024-03-21 23:19| 来源: 网络整理| 查看: 265

一、什么是INIT: 所谓的init进程,它是一个由内核启动的用户级进程。 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。 二、运行级别 简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。 不同的运行级定义如下 0 - 停机(千万不能把initdefault 设置为0 ) 1 - 单用户模式                    # s   init s = init 1 2 - 多用户,没有 NFS 3 - 完全多用户模式(标准的运行级) 4 - 没有用到 5 - X11 多用户图形模式(xwindow) 6 - 重新启动 (千万不要把initdefault 设置为6 ) 这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)   

 

三,linux下开机自动启动脚本所涉及的知识和方法如下:

在Linux系统中,系统服务的启动脚本一般放在/etc/init.d目录下。不同的开机模式,则分别对应到/etc/rcx.d目录下。其实/etc/rcx.d上的文件,一般都是链接到/etc/init.d目录下的对应文件的。/etc/rcx.d下的文件名,是以S+数字或K+数字打头的,这里的S表示启动,K表示关闭,数值其后面的数值则表示服务启动或服务退出时的次序。那么,这些数值如何修改,不是在/etc/rcx.d下去修改文件名,而是如下步骤:

        打开/etc/init.d下的脚本,查找类似下面的一句:

        #chkconfig: 2345 64 36

        这里的64,就是启动的顺序值,36则是退出的顺序值,如果需要改变顺序,就在这里改。然后执行下面的命令:

        #chkconfig --del servicename

        #chkconfig --add servicename

        #chkconfig servicename on

        servicename对应您的服务名称。

linux的启动方式和执行次序是:先加载内核,然后执行init程序       /etc/rc.d/rc.sysinit # 由init执行的第一个脚本       /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式       /etc/rc.d/rc.local     #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)       /sbin/mingetty # 等待用户登录      

在linux中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作有如下步骤:

调入keymap以及系统字体;启动swapping;设置主机名;设置NIS域名;

检查(fsck)并mount文件系统;打开quota;装载声卡模块;设置系统时钟;

      /etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。             init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的       action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录操作。

 

四,实例介绍:在linux下安装了apache 服务(通过下载二进制文件经济编译安装、而非rpm包)、apache 服务启动命令:            /server/apache/bin/apachectl start    。让apache服务运行在运行级别3下面。 命令如下:         touch /etc/rc.d/init.d/apache       vi /etc/rc.d/init.d/apache       chown -R root /etc/rc.d/init.d/apache       chmod 700 /etc/rc.d/init.d/apache       ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache   #S 是start的简写、代表启动、K是kill的简写、代表关闭。60数字 代表启动的顺序。        apache的内容:       #!/bin/bash       #Start httpd service       /server/apache/bin/apachectl start

至此 apache服务就可以在运行级别3下 随机自动启动了。(可以结合chkconfig 对启动服务进行相应的调整)。 由于相关变量定义不同, 所以以下启动顺序仅供参考 在Redhat Redflag centos fc linux系统里面脚本的启动 先后: 第一步:通过/boot/vm进行启动 vmlinuz 第二步:init /etc/inittab 第三步:启动相应的脚本,并且打开终端 rc.sysinit rc.d(里面的脚本) rc.local 第四步:启动login登录界面 login 第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的 /etc/profile.d/file /etc/profile /etc/bashrc /root/.bashrc /root/.bash_profile



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3